package bishi.kaizi;

import java.util.ArrayList;
import java.util.PriorityQueue;

/**
 * @author: Tangxz
 * @email: 1171702529@qq.com
 * @cate: 2022/03/20 23:02
 */
public class _13 {
    public static void main(String[] args) {
        System.out.println(heap_top_k(
                new ArrayList<Integer>() {{
                    add(10);
                    add(6);
                    add(10);
                    add(1);
                    add(8);
                    add(7);
                    add(5);
                    add(8);
                    add(9);
                    add(9);
                    add(8);
                    add(3);
                    add(2);
                }}
                , 5));
    }

    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     * @param nums int整型ArrayList
     * @param k    int整型
     * @return int整型ArrayList
     */
    public static ArrayList<Integer> heap_top_k(ArrayList<Integer> nums, int k) {
        // write code here
        PriorityQueue<Integer> queue = new PriorityQueue<>((i1, i2) -> Integer.compare(i2, i1));
        queue.addAll(nums);
        ArrayList<Integer> res = new ArrayList<>();
        while (k > 0) {
            res.add(queue.poll());
            k--;
        }
        return res;
    }
}
